// vite.config.ts
import { resolve as resolve2 } from "path";
import { loadEnv } from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/vite/dist/node/index.js";

// build/vite/index.ts
import { resolve } from "path";
import Vue from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import VueJsx from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs";
import progress from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/vite-plugin-progress/dist/index.mjs";
import PurgeIcons from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/vite-plugin-purge-icons/dist/index.mjs";
import { ViteEjsPlugin } from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/vite-plugin-ejs/index.js";
import ElementPlus from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/unplugin-element-plus/dist/vite.mjs";
import AutoImport from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/unplugin-auto-import/dist/vite.js";
import Components from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/unplugin-vue-components/dist/vite.mjs";
import { ElementPlusResolver } from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/unplugin-vue-components/dist/resolvers.mjs";
import viteCompression from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/vite-plugin-compression/dist/index.mjs";
import topLevelAwait from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/vite-plugin-top-level-await/exports/import.mjs";
import VueI18nPlugin from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/@intlify/unplugin-vue-i18n/lib/vite.mjs";
import { createSvgIconsPlugin } from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/vite-plugin-svg-icons/dist/index.mjs";
import UnoCSS from "file:///C:/Users/%E5%BE%90%E6%96%87%E6%B6%9B/Downloads/qxyspt/artist-platform-vue3/node_modules/unocss/dist/vite.mjs";
var __vite_injected_original_dirname = "C:\\Users\\\u5F90\u6587\u6D9B\\Downloads\\qxyspt\\artist-platform-vue3\\build\\vite";
function createVitePlugins() {
  const root2 = process.cwd();
  function pathResolve2(dir) {
    return resolve(root2, ".", dir);
  }
  return [
    Vue(),
    VueJsx(),
    UnoCSS(),
    progress(),
    PurgeIcons(),
    ElementPlus({}),
    AutoImport({
      include: [
        /\.[tj]sx?$/,
        // .ts, .tsx, .js, .jsx
        /\.vue$/,
        /\.vue\?vue/,
        // .vue
        /\.md$/
        // .md
      ],
      imports: [
        "vue",
        "vue-router",
        // 可额外添加需要 autoImport 的组件
        {
          "@/hooks/web/useI18n": ["useI18n"],
          "@/hooks/web/useMessage": ["useMessage"],
          "@/hooks/web/useTable": ["useTable"],
          "@/hooks/web/useCrudSchemas": ["useCrudSchemas"],
          "@/utils/formRules": ["required"],
          "@/utils/dict": ["DICT_TYPE"]
        }
      ],
      dts: "src/types/auto-imports.d.ts",
      resolvers: [ElementPlusResolver()],
      eslintrc: {
        enabled: false,
        // Default `false`
        filepath: "./.eslintrc-auto-import.json",
        // Default `./.eslintrc-auto-import.json`
        globalsPropValue: true
        // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')
      }
    }),
    Components({
      // 生成自定义 `auto-components.d.ts` 全局声明
      dts: "src/types/auto-components.d.ts",
      // 自定义组件的解析器
      resolvers: [ElementPlusResolver()],
      globs: ["src/components/**/**.{vue, md}", "!src/components/DiyEditor/components/mobile/**"]
    }),
    // EslintPlugin({
    //   cache: false,
    //   include: ['src/**/*.vue', 'src/**/*.ts', 'src/**/*.tsx'] // 检查的文件
    // }),
    VueI18nPlugin({
      runtimeOnly: true,
      compositionOnly: true,
      include: [resolve(__vite_injected_original_dirname, "src/locales/**")]
    }),
    createSvgIconsPlugin({
      iconDirs: [pathResolve2("src/assets/svgs")],
      symbolId: "icon-[dir]-[name]",
      svgoOptions: true
    }),
    viteCompression({
      verbose: true,
      // 是否在控制台输出压缩结果
      disable: false,
      // 是否禁用
      threshold: 10240,
      // 体积大于 threshold 才会被压缩,单位 b
      algorithm: "gzip",
      // 压缩算法,可选 [ 'gzip' , 'brotliCompress' ,'deflate' , 'deflateRaw']
      ext: ".gz",
      // 生成的压缩包后缀
      deleteOriginFile: false
      //压缩后是否删除源文件
    }),
    ViteEjsPlugin(),
    topLevelAwait({
      // https://juejin.cn/post/7152191742513512485
      // The export name of top-level await promise for each chunk module
      promiseExportName: "__tla",
      // The function to generate import names of top-level await promise in each chunk module
      promiseImportName: (i) => `__tla_${i}`
    })
  ];
}

// build/vite/optimize.ts
var include = [
  "qs",
  "url",
  "vue",
  "sass",
  "mitt",
  "axios",
  "pinia",
  "dayjs",
  "qrcode",
  "unocss",
  "vue-router",
  "vue-types",
  "vue-i18n",
  "crypto-js",
  "cropperjs",
  "lodash-es",
  "nprogress",
  "web-storage-cache",
  "@iconify/iconify",
  "@vueuse/core",
  "@zxcvbn-ts/core",
  "echarts/core",
  "echarts/charts",
  "echarts/components",
  "echarts/renderers",
  "echarts-wordcloud",
  "@wangeditor/editor",
  "@wangeditor/editor-for-vue",
  "@microsoft/fetch-event-source",
  "markdown-it",
  "markmap-view",
  "markmap-lib",
  "markmap-toolbar",
  "highlight.js",
  "element-plus",
  "element-plus/es",
  "element-plus/es/locale/lang/zh-cn",
  "element-plus/es/locale/lang/en",
  "element-plus/es/components/avatar/style/css",
  "element-plus/es/components/space/style/css",
  "element-plus/es/components/backtop/style/css",
  "element-plus/es/components/form/style/css",
  "element-plus/es/components/radio-group/style/css",
  "element-plus/es/components/radio/style/css",
  "element-plus/es/components/checkbox/style/css",
  "element-plus/es/components/checkbox-group/style/css",
  "element-plus/es/components/switch/style/css",
  "element-plus/es/components/time-picker/style/css",
  "element-plus/es/components/date-picker/style/css",
  "element-plus/es/components/descriptions/style/css",
  "element-plus/es/components/descriptions-item/style/css",
  "element-plus/es/components/link/style/css",
  "element-plus/es/components/tooltip/style/css",
  "element-plus/es/components/drawer/style/css",
  "element-plus/es/components/dialog/style/css",
  "element-plus/es/components/checkbox-button/style/css",
  "element-plus/es/components/option-group/style/css",
  "element-plus/es/components/radio-button/style/css",
  "element-plus/es/components/cascader/style/css",
  "element-plus/es/components/color-picker/style/css",
  "element-plus/es/components/input-number/style/css",
  "element-plus/es/components/rate/style/css",
  "element-plus/es/components/select-v2/style/css",
  "element-plus/es/components/tree-select/style/css",
  "element-plus/es/components/slider/style/css",
  "element-plus/es/components/time-select/style/css",
  "element-plus/es/components/autocomplete/style/css",
  "element-plus/es/components/image-viewer/style/css",
  "element-plus/es/components/upload/style/css",
  "element-plus/es/components/col/style/css",
  "element-plus/es/components/form-item/style/css",
  "element-plus/es/components/alert/style/css",
  "element-plus/es/components/breadcrumb/style/css",
  "element-plus/es/components/select/style/css",
  "element-plus/es/components/input/style/css",
  "element-plus/es/components/breadcrumb-item/style/css",
  "element-plus/es/components/tag/style/css",
  "element-plus/es/components/pagination/style/css",
  "element-plus/es/components/table/style/css",
  "element-plus/es/components/table-v2/style/css",
  "element-plus/es/components/table-column/style/css",
  "element-plus/es/components/card/style/css",
  "element-plus/es/components/row/style/css",
  "element-plus/es/components/button/style/css",
  "element-plus/es/components/menu/style/css",
  "element-plus/es/components/sub-menu/style/css",
  "element-plus/es/components/menu-item/style/css",
  "element-plus/es/components/option/style/css",
  "element-plus/es/components/dropdown/style/css",
  "element-plus/es/components/dropdown-menu/style/css",
  "element-plus/es/components/dropdown-item/style/css",
  "element-plus/es/components/skeleton/style/css",
  "element-plus/es/components/skeleton/style/css",
  "element-plus/es/components/backtop/style/css",
  "element-plus/es/components/menu/style/css",
  "element-plus/es/components/sub-menu/style/css",
  "element-plus/es/components/menu-item/style/css",
  "element-plus/es/components/dropdown/style/css",
  "element-plus/es/components/tree/style/css",
  "element-plus/es/components/dropdown-menu/style/css",
  "element-plus/es/components/dropdown-item/style/css",
  "element-plus/es/components/badge/style/css",
  "element-plus/es/components/breadcrumb/style/css",
  "element-plus/es/components/breadcrumb-item/style/css",
  "element-plus/es/components/image/style/css",
  "element-plus/es/components/collapse-transition/style/css",
  "element-plus/es/components/timeline/style/css",
  "element-plus/es/components/timeline-item/style/css",
  "element-plus/es/components/collapse/style/css",
  "element-plus/es/components/collapse-item/style/css",
  "element-plus/es/components/button-group/style/css",
  "element-plus/es/components/text/style/css",
  "element-plus/es/components/segmented/style/css",
  "@element-plus/icons-vue",
  "element-plus/es/components/footer/style/css",
  "element-plus/es/components/empty/style/css"
];
var exclude = ["@iconify/json"];

// vite.config.ts
var root = process.cwd();
function pathResolve(dir) {
  return resolve2(root, ".", dir);
}
var vite_config_default = ({ command, mode }) => {
  let env = {};
  const isBuild = command === "build";
  if (!isBuild) {
    env = loadEnv(process.argv[3] === "--mode" ? process.argv[4] : process.argv[3], root);
  } else {
    env = loadEnv(mode, root);
  }
  return {
    base: env.VITE_BASE_PATH,
    root,
    // 服务端渲染
    server: {
      port: env.VITE_PORT,
      // 端口号
      host: "0.0.0.0",
      open: env.VITE_OPEN === "true"
      // 本地跨域代理. 目前注释的原因：暂时没有用途，server 端已经支持跨域
      // proxy: {
      //   ['/admin-api']: {
      //     target: env.VITE_BASE_URL,
      //     ws: false,
      //     changeOrigin: true,
      //     rewrite: (path) => path.replace(new RegExp(`^/admin-api`), ''),
      //   },
      // },
    },
    // 项目使用的vite插件。 单独提取到build/vite/plugin中管理
    plugins: createVitePlugins(),
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: '@use "@/styles/variables.scss" as *;',
          silenceDeprecations: ["legacy-js-api"],
          // 参考自 https://stackoverflow.com/questions/78997907/the-legacy-js-api-is-deprecated-and-will-be-removed-in-dart-sass-2-0-0
          charset: false
        }
      }
    },
    resolve: {
      extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".scss", ".css"],
      alias: [
        {
          find: "vue-i18n",
          replacement: "vue-i18n/dist/vue-i18n.cjs.js"
        },
        {
          find: /\@\//,
          replacement: `${pathResolve("src")}/`
        }
      ]
    },
    build: {
      minify: "terser",
      outDir: env.VITE_OUT_DIR || "dist",
      sourcemap: env.VITE_SOURCEMAP === "true" ? "inline" : false,
      // brotliSize: false,
      terserOptions: {
        compress: {
          drop_debugger: env.VITE_DROP_DEBUGGER === "true",
          drop_console: env.VITE_DROP_CONSOLE === "true"
        }
      },
      rollupOptions: {
        output: {
          manualChunks: {
            echarts: ["echarts"]
            // 将 echarts 单独打包，参考 https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues/IAB1SX 讨论
          }
        }
      }
    },
    optimizeDeps: { include, exclude }
  };
};
export {
  vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAiYnVpbGQvdml0ZS9pbmRleC50cyIsICJidWlsZC92aXRlL29wdGltaXplLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiQzpcXFxcVXNlcnNcXFxcXHU1RjkwXHU2NTg3XHU2RDlCXFxcXERvd25sb2Fkc1xcXFxxeHlzcHRcXFxcYXJ0aXN0LXBsYXRmb3JtLXZ1ZTNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkM6XFxcXFVzZXJzXFxcXFx1NUY5MFx1NjU4N1x1NkQ5QlxcXFxEb3dubG9hZHNcXFxccXh5c3B0XFxcXGFydGlzdC1wbGF0Zm9ybS12dWUzXFxcXHZpdGUuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9DOi9Vc2Vycy8lRTUlQkUlOTAlRTYlOTYlODclRTYlQjYlOUIvRG93bmxvYWRzL3F4eXNwdC9hcnRpc3QtcGxhdGZvcm0tdnVlMy92aXRlLmNvbmZpZy50c1wiO2ltcG9ydCB7cmVzb2x2ZX0gZnJvbSAncGF0aCdcclxuaW1wb3J0IHR5cGUge0NvbmZpZ0VudiwgVXNlckNvbmZpZ30gZnJvbSAndml0ZSdcclxuaW1wb3J0IHtsb2FkRW52fSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQge2NyZWF0ZVZpdGVQbHVnaW5zfSBmcm9tICcuL2J1aWxkL3ZpdGUnXHJcbmltcG9ydCB7ZXhjbHVkZSwgaW5jbHVkZX0gZnJvbSBcIi4vYnVpbGQvdml0ZS9vcHRpbWl6ZVwiXHJcbi8vIFx1NUY1M1x1NTI0RFx1NjI2N1x1ODg0Q25vZGVcdTU0N0RcdTRFRTRcdTY1RjZcdTY1ODdcdTRFRjZcdTU5MzlcdTc2ODRcdTU3MzBcdTU3NDAoXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1KVxyXG5jb25zdCByb290ID0gcHJvY2Vzcy5jd2QoKVxyXG5cclxuLy8gXHU4REVGXHU1Rjg0XHU2N0U1XHU2MjdFXHJcbmZ1bmN0aW9uIHBhdGhSZXNvbHZlKGRpcjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gcmVzb2x2ZShyb290LCAnLicsIGRpcilcclxufVxyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgKHtjb21tYW5kLCBtb2RlfTogQ29uZmlnRW52KTogVXNlckNvbmZpZyA9PiB7XHJcbiAgICBsZXQgZW52ID0ge30gYXMgYW55XHJcbiAgICBjb25zdCBpc0J1aWxkID0gY29tbWFuZCA9PT0gJ2J1aWxkJ1xyXG4gICAgaWYgKCFpc0J1aWxkKSB7XHJcbiAgICAgICAgZW52ID0gbG9hZEVudigocHJvY2Vzcy5hcmd2WzNdID09PSAnLS1tb2RlJyA/IHByb2Nlc3MuYXJndls0XSA6IHByb2Nlc3MuYXJndlszXSksIHJvb3QpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVudiA9IGxvYWRFbnYobW9kZSwgcm9vdClcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgYmFzZTogZW52LlZJVEVfQkFTRV9QQVRILFxyXG4gICAgICAgIHJvb3Q6IHJvb3QsXHJcbiAgICAgICAgLy8gXHU2NzBEXHU1MkExXHU3QUVGXHU2RTMyXHU2N0QzXHJcbiAgICAgICAgc2VydmVyOiB7XHJcbiAgICAgICAgICAgIHBvcnQ6IGVudi5WSVRFX1BPUlQsIC8vIFx1N0FFRlx1NTNFM1x1NTNGN1xyXG4gICAgICAgICAgICBob3N0OiBcIjAuMC4wLjBcIixcclxuICAgICAgICAgICAgb3BlbjogZW52LlZJVEVfT1BFTiA9PT0gJ3RydWUnLFxyXG4gICAgICAgICAgICAvLyBcdTY3MkNcdTU3MzBcdThERThcdTU3REZcdTRFRTNcdTc0MDYuIFx1NzZFRVx1NTI0RFx1NkNFOFx1OTFDQVx1NzY4NFx1NTM5Rlx1NTZFMFx1RkYxQVx1NjY4Mlx1NjVGNlx1NkNBMVx1NjcwOVx1NzUyOFx1OTAxNFx1RkYwQ3NlcnZlciBcdTdBRUZcdTVERjJcdTdFQ0ZcdTY1MkZcdTYzMDFcdThERThcdTU3REZcclxuICAgICAgICAgICAgLy8gcHJveHk6IHtcclxuICAgICAgICAgICAgLy8gICBbJy9hZG1pbi1hcGknXToge1xyXG4gICAgICAgICAgICAvLyAgICAgdGFyZ2V0OiBlbnYuVklURV9CQVNFX1VSTCxcclxuICAgICAgICAgICAgLy8gICAgIHdzOiBmYWxzZSxcclxuICAgICAgICAgICAgLy8gICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcclxuICAgICAgICAgICAgLy8gICAgIHJld3JpdGU6IChwYXRoKSA9PiBwYXRoLnJlcGxhY2UobmV3IFJlZ0V4cChgXi9hZG1pbi1hcGlgKSwgJycpLFxyXG4gICAgICAgICAgICAvLyAgIH0sXHJcbiAgICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIFx1OTg3OVx1NzZFRVx1NEY3Rlx1NzUyOFx1NzY4NHZpdGVcdTYzRDJcdTRFRjZcdTMwMDIgXHU1MzU1XHU3MkVDXHU2M0QwXHU1M0Q2XHU1MjMwYnVpbGQvdml0ZS9wbHVnaW5cdTRFMkRcdTdCQTFcdTc0MDZcclxuICAgICAgICBwbHVnaW5zOiBjcmVhdGVWaXRlUGx1Z2lucygpLFxyXG4gICAgICAgIGNzczoge1xyXG4gICAgICAgICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBzY3NzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbERhdGE6ICdAdXNlIFwiQC9zdHlsZXMvdmFyaWFibGVzLnNjc3NcIiBhcyAqOycsXHJcbiAgICAgICAgICAgICAgICAgICAgc2lsZW5jZURlcHJlY2F0aW9uczogW1wibGVnYWN5LWpzLWFwaVwiXSwgLy8gXHU1M0MyXHU4MDAzXHU4MUVBIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc4OTk3OTA3L3RoZS1sZWdhY3ktanMtYXBpLWlzLWRlcHJlY2F0ZWQtYW5kLXdpbGwtYmUtcmVtb3ZlZC1pbi1kYXJ0LXNhc3MtMi0wLTBcclxuICAgICAgICAgICAgICAgICAgICBjaGFyc2V0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVzb2x2ZToge1xyXG4gICAgICAgICAgICBleHRlbnNpb25zOiBbJy5tanMnLCAnLmpzJywgJy50cycsICcuanN4JywgJy50c3gnLCAnLmpzb24nLCAnLnNjc3MnLCAnLmNzcyddLFxyXG4gICAgICAgICAgICBhbGlhczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpbmQ6ICd2dWUtaTE4bicsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQ6ICd2dWUtaTE4bi9kaXN0L3Z1ZS1pMThuLmNqcy5qcydcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmluZDogL1xcQFxcLy8sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQ6IGAke3BhdGhSZXNvbHZlKCdzcmMnKX0vYFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSxcclxuICAgICAgICBidWlsZDoge1xyXG4gICAgICAgICAgICBtaW5pZnk6ICd0ZXJzZXInLFxyXG4gICAgICAgICAgICBvdXREaXI6IGVudi5WSVRFX09VVF9ESVIgfHwgJ2Rpc3QnLFxyXG4gICAgICAgICAgICBzb3VyY2VtYXA6IGVudi5WSVRFX1NPVVJDRU1BUCA9PT0gJ3RydWUnID8gJ2lubGluZScgOiBmYWxzZSxcclxuICAgICAgICAgICAgLy8gYnJvdGxpU2l6ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHRlcnNlck9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIGNvbXByZXNzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZHJvcF9kZWJ1Z2dlcjogZW52LlZJVEVfRFJPUF9ERUJVR0dFUiA9PT0gJ3RydWUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGRyb3BfY29uc29sZTogZW52LlZJVEVfRFJPUF9DT05TT0xFID09PSAndHJ1ZSdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcm9sbHVwT3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgb3V0cHV0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFudWFsQ2h1bmtzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVjaGFydHM6IFsnZWNoYXJ0cyddIC8vIFx1NUMwNiBlY2hhcnRzIFx1NTM1NVx1NzJFQ1x1NjI1M1x1NTMwNVx1RkYwQ1x1NTNDMlx1ODAwMyBodHRwczovL2dpdGVlLmNvbS95dWRhb2NvZGUveXVkYW8tdWktYWRtaW4tdnVlMy9pc3N1ZXMvSUFCMVNYIFx1OEJBOFx1OEJCQVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBvcHRpbWl6ZURlcHM6IHtpbmNsdWRlLCBleGNsdWRlfVxyXG4gICAgfVxyXG59XHJcblxyXG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkM6XFxcXFVzZXJzXFxcXFx1NUY5MFx1NjU4N1x1NkQ5QlxcXFxEb3dubG9hZHNcXFxccXh5c3B0XFxcXGFydGlzdC1wbGF0Zm9ybS12dWUzXFxcXGJ1aWxkXFxcXHZpdGVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkM6XFxcXFVzZXJzXFxcXFx1NUY5MFx1NjU4N1x1NkQ5QlxcXFxEb3dubG9hZHNcXFxccXh5c3B0XFxcXGFydGlzdC1wbGF0Zm9ybS12dWUzXFxcXGJ1aWxkXFxcXHZpdGVcXFxcaW5kZXgudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0M6L1VzZXJzLyVFNSVCRSU5MCVFNiU5NiU4NyVFNiVCNiU5Qi9Eb3dubG9hZHMvcXh5c3B0L2FydGlzdC1wbGF0Zm9ybS12dWUzL2J1aWxkL3ZpdGUvaW5kZXgudHNcIjtpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCdcclxuaW1wb3J0IFZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnXHJcbmltcG9ydCBWdWVKc3ggZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlLWpzeCdcclxuaW1wb3J0IHByb2dyZXNzIGZyb20gJ3ZpdGUtcGx1Z2luLXByb2dyZXNzJ1xyXG4vLyBpbXBvcnQgRXNsaW50UGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWVzbGludCdcclxuaW1wb3J0IFB1cmdlSWNvbnMgZnJvbSAndml0ZS1wbHVnaW4tcHVyZ2UtaWNvbnMnXHJcbmltcG9ydCB7IFZpdGVFanNQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1lanMnXHJcbi8vIEB0cy1pZ25vcmVcclxuaW1wb3J0IEVsZW1lbnRQbHVzIGZyb20gJ3VucGx1Z2luLWVsZW1lbnQtcGx1cy92aXRlJ1xyXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tICd1bnBsdWdpbi1hdXRvLWltcG9ydC92aXRlJ1xyXG5pbXBvcnQgQ29tcG9uZW50cyBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy92aXRlJ1xyXG5pbXBvcnQgeyBFbGVtZW50UGx1c1Jlc29sdmVyIH0gZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvcmVzb2x2ZXJzJ1xyXG5pbXBvcnQgdml0ZUNvbXByZXNzaW9uIGZyb20gJ3ZpdGUtcGx1Z2luLWNvbXByZXNzaW9uJ1xyXG5pbXBvcnQgdG9wTGV2ZWxBd2FpdCBmcm9tICd2aXRlLXBsdWdpbi10b3AtbGV2ZWwtYXdhaXQnXHJcbmltcG9ydCBWdWVJMThuUGx1Z2luIGZyb20gJ0BpbnRsaWZ5L3VucGx1Z2luLXZ1ZS1pMThuL3ZpdGUnXHJcbmltcG9ydCB7IGNyZWF0ZVN2Z0ljb25zUGx1Z2luIH0gZnJvbSAndml0ZS1wbHVnaW4tc3ZnLWljb25zJ1xyXG5pbXBvcnQgVW5vQ1NTIGZyb20gJ3Vub2Nzcy92aXRlJ1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZpdGVQbHVnaW5zKCkge1xyXG4gIGNvbnN0IHJvb3QgPSBwcm9jZXNzLmN3ZCgpXHJcblxyXG4gIC8vIFx1OERFRlx1NUY4NFx1NjdFNVx1NjI3RVxyXG4gIGZ1bmN0aW9uIHBhdGhSZXNvbHZlKGRpcjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gcmVzb2x2ZShyb290LCAnLicsIGRpcilcclxuICB9XHJcblxyXG4gIHJldHVybiBbXHJcbiAgICBWdWUoKSxcclxuICAgIFZ1ZUpzeCgpLFxyXG4gICAgVW5vQ1NTKCksXHJcbiAgICBwcm9ncmVzcygpLFxyXG4gICAgUHVyZ2VJY29ucygpLFxyXG4gICAgRWxlbWVudFBsdXMoe30pLFxyXG4gICAgQXV0b0ltcG9ydCh7XHJcbiAgICAgIGluY2x1ZGU6IFtcclxuICAgICAgICAvXFwuW3RqXXN4PyQvLCAvLyAudHMsIC50c3gsIC5qcywgLmpzeFxyXG4gICAgICAgIC9cXC52dWUkLyxcclxuICAgICAgICAvXFwudnVlXFw/dnVlLywgLy8gLnZ1ZVxyXG4gICAgICAgIC9cXC5tZCQvIC8vIC5tZFxyXG4gICAgICBdLFxyXG4gICAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgJ3Z1ZScsXHJcbiAgICAgICAgJ3Z1ZS1yb3V0ZXInLFxyXG4gICAgICAgIC8vIFx1NTNFRlx1OTg5RFx1NTkxNlx1NkRGQlx1NTJBMFx1OTcwMFx1ODk4MSBhdXRvSW1wb3J0IFx1NzY4NFx1N0VDNFx1NEVGNlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICdAL2hvb2tzL3dlYi91c2VJMThuJzogWyd1c2VJMThuJ10sXHJcbiAgICAgICAgICAnQC9ob29rcy93ZWIvdXNlTWVzc2FnZSc6IFsndXNlTWVzc2FnZSddLFxyXG4gICAgICAgICAgJ0AvaG9va3Mvd2ViL3VzZVRhYmxlJzogWyd1c2VUYWJsZSddLFxyXG4gICAgICAgICAgJ0AvaG9va3Mvd2ViL3VzZUNydWRTY2hlbWFzJzogWyd1c2VDcnVkU2NoZW1hcyddLFxyXG4gICAgICAgICAgJ0AvdXRpbHMvZm9ybVJ1bGVzJzogWydyZXF1aXJlZCddLFxyXG4gICAgICAgICAgJ0AvdXRpbHMvZGljdCc6IFsnRElDVF9UWVBFJ11cclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICAgIGR0czogJ3NyYy90eXBlcy9hdXRvLWltcG9ydHMuZC50cycsXHJcbiAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKV0sXHJcbiAgICAgIGVzbGludHJjOiB7XHJcbiAgICAgICAgZW5hYmxlZDogZmFsc2UsIC8vIERlZmF1bHQgYGZhbHNlYFxyXG4gICAgICAgIGZpbGVwYXRoOiAnLi8uZXNsaW50cmMtYXV0by1pbXBvcnQuanNvbicsIC8vIERlZmF1bHQgYC4vLmVzbGludHJjLWF1dG8taW1wb3J0Lmpzb25gXHJcbiAgICAgICAgZ2xvYmFsc1Byb3BWYWx1ZTogdHJ1ZSAvLyBEZWZhdWx0IGB0cnVlYCwgKHRydWUgfCBmYWxzZSB8ICdyZWFkb25seScgfCAncmVhZGFibGUnIHwgJ3dyaXRhYmxlJyB8ICd3cml0ZWFibGUnKVxyXG4gICAgICB9XHJcbiAgICB9KSxcclxuICAgIENvbXBvbmVudHMoe1xyXG4gICAgICAvLyBcdTc1MUZcdTYyMTBcdTgxRUFcdTVCOUFcdTRFNDkgYGF1dG8tY29tcG9uZW50cy5kLnRzYCBcdTUxNjhcdTVDNDBcdTU4RjBcdTY2MEVcclxuICAgICAgZHRzOiAnc3JjL3R5cGVzL2F1dG8tY29tcG9uZW50cy5kLnRzJyxcclxuICAgICAgLy8gXHU4MUVBXHU1QjlBXHU0RTQ5XHU3RUM0XHU0RUY2XHU3Njg0XHU4OUUzXHU2NzkwXHU1NjY4XHJcbiAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKV0sXHJcbiAgICAgIGdsb2JzOiBbXCJzcmMvY29tcG9uZW50cy8qKi8qKi57dnVlLCBtZH1cIiwgJyFzcmMvY29tcG9uZW50cy9EaXlFZGl0b3IvY29tcG9uZW50cy9tb2JpbGUvKionXVxyXG4gICAgfSksXHJcbiAgICAvLyBFc2xpbnRQbHVnaW4oe1xyXG4gICAgLy8gICBjYWNoZTogZmFsc2UsXHJcbiAgICAvLyAgIGluY2x1ZGU6IFsnc3JjLyoqLyoudnVlJywgJ3NyYy8qKi8qLnRzJywgJ3NyYy8qKi8qLnRzeCddIC8vIFx1NjhDMFx1NjdFNVx1NzY4NFx1NjU4N1x1NEVGNlxyXG4gICAgLy8gfSksXHJcbiAgICBWdWVJMThuUGx1Z2luKHtcclxuICAgICAgcnVudGltZU9ubHk6IHRydWUsXHJcbiAgICAgIGNvbXBvc2l0aW9uT25seTogdHJ1ZSxcclxuICAgICAgaW5jbHVkZTogW3Jlc29sdmUoX19kaXJuYW1lLCAnc3JjL2xvY2FsZXMvKionKV1cclxuICAgIH0pLFxyXG4gICAgY3JlYXRlU3ZnSWNvbnNQbHVnaW4oe1xyXG4gICAgICBpY29uRGlyczogW3BhdGhSZXNvbHZlKCdzcmMvYXNzZXRzL3N2Z3MnKV0sXHJcbiAgICAgIHN5bWJvbElkOiAnaWNvbi1bZGlyXS1bbmFtZV0nLFxyXG4gICAgICBzdmdvT3B0aW9uczogdHJ1ZVxyXG4gICAgfSksXHJcbiAgICB2aXRlQ29tcHJlc3Npb24oe1xyXG4gICAgICB2ZXJib3NlOiB0cnVlLCAvLyBcdTY2MkZcdTU0MjZcdTU3MjhcdTYzQTdcdTUyMzZcdTUzRjBcdThGOTNcdTUxRkFcdTUzOEJcdTdGMjlcdTdFRDNcdTY3OUNcclxuICAgICAgZGlzYWJsZTogZmFsc2UsIC8vIFx1NjYyRlx1NTQyNlx1Nzk4MVx1NzUyOFxyXG4gICAgICB0aHJlc2hvbGQ6IDEwMjQwLCAvLyBcdTRGNTNcdTc5RUZcdTU5MjdcdTRFOEUgdGhyZXNob2xkIFx1NjI0RFx1NEYxQVx1ODhBQlx1NTM4Qlx1N0YyOSxcdTUzNTVcdTRGNEQgYlxyXG4gICAgICBhbGdvcml0aG06ICdnemlwJywgLy8gXHU1MzhCXHU3RjI5XHU3Qjk3XHU2Q0Q1LFx1NTNFRlx1OTAwOSBbICdnemlwJyAsICdicm90bGlDb21wcmVzcycgLCdkZWZsYXRlJyAsICdkZWZsYXRlUmF3J11cclxuICAgICAgZXh0OiAnLmd6JywgLy8gXHU3NTFGXHU2MjEwXHU3Njg0XHU1MzhCXHU3RjI5XHU1MzA1XHU1NDBFXHU3RjAwXHJcbiAgICAgIGRlbGV0ZU9yaWdpbkZpbGU6IGZhbHNlIC8vXHU1MzhCXHU3RjI5XHU1NDBFXHU2NjJGXHU1NDI2XHU1MjIwXHU5NjY0XHU2RTkwXHU2NTg3XHU0RUY2XHJcbiAgICB9KSxcclxuICAgIFZpdGVFanNQbHVnaW4oKSxcclxuICAgIHRvcExldmVsQXdhaXQoe1xyXG4gICAgICAvLyBodHRwczovL2p1ZWppbi5jbi9wb3N0LzcxNTIxOTE3NDI1MTM1MTI0ODVcclxuICAgICAgLy8gVGhlIGV4cG9ydCBuYW1lIG9mIHRvcC1sZXZlbCBhd2FpdCBwcm9taXNlIGZvciBlYWNoIGNodW5rIG1vZHVsZVxyXG4gICAgICBwcm9taXNlRXhwb3J0TmFtZTogJ19fdGxhJyxcclxuICAgICAgLy8gVGhlIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIGltcG9ydCBuYW1lcyBvZiB0b3AtbGV2ZWwgYXdhaXQgcHJvbWlzZSBpbiBlYWNoIGNodW5rIG1vZHVsZVxyXG4gICAgICBwcm9taXNlSW1wb3J0TmFtZTogKGkpID0+IGBfX3RsYV8ke2l9YFxyXG4gICAgfSlcclxuICBdXHJcbn1cclxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJDOlxcXFxVc2Vyc1xcXFxcdTVGOTBcdTY1ODdcdTZEOUJcXFxcRG93bmxvYWRzXFxcXHF4eXNwdFxcXFxhcnRpc3QtcGxhdGZvcm0tdnVlM1xcXFxidWlsZFxcXFx2aXRlXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJDOlxcXFxVc2Vyc1xcXFxcdTVGOTBcdTY1ODdcdTZEOUJcXFxcRG93bmxvYWRzXFxcXHF4eXNwdFxcXFxhcnRpc3QtcGxhdGZvcm0tdnVlM1xcXFxidWlsZFxcXFx2aXRlXFxcXG9wdGltaXplLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9DOi9Vc2Vycy8lRTUlQkUlOTAlRTYlOTYlODclRTYlQjYlOUIvRG93bmxvYWRzL3F4eXNwdC9hcnRpc3QtcGxhdGZvcm0tdnVlMy9idWlsZC92aXRlL29wdGltaXplLnRzXCI7Y29uc3QgaW5jbHVkZSA9IFtcclxuICAgICdxcycsXHJcbiAgICAndXJsJyxcclxuICAgICd2dWUnLFxyXG4gICAgJ3Nhc3MnLFxyXG4gICAgJ21pdHQnLFxyXG4gICAgJ2F4aW9zJyxcclxuICAgICdwaW5pYScsXHJcbiAgICAnZGF5anMnLFxyXG4gICAgJ3FyY29kZScsXHJcbiAgICAndW5vY3NzJyxcclxuICAgICd2dWUtcm91dGVyJyxcclxuICAgICd2dWUtdHlwZXMnLFxyXG4gICAgJ3Z1ZS1pMThuJyxcclxuICAgICdjcnlwdG8tanMnLFxyXG4gICAgJ2Nyb3BwZXJqcycsXHJcbiAgICAnbG9kYXNoLWVzJyxcclxuICAgICducHJvZ3Jlc3MnLFxyXG4gICAgJ3dlYi1zdG9yYWdlLWNhY2hlJyxcclxuICAgICdAaWNvbmlmeS9pY29uaWZ5JyxcclxuICAgICdAdnVldXNlL2NvcmUnLFxyXG4gICAgJ0B6eGN2Ym4tdHMvY29yZScsXHJcbiAgICAnZWNoYXJ0cy9jb3JlJyxcclxuICAgICdlY2hhcnRzL2NoYXJ0cycsXHJcbiAgICAnZWNoYXJ0cy9jb21wb25lbnRzJyxcclxuICAgICdlY2hhcnRzL3JlbmRlcmVycycsXHJcbiAgICAnZWNoYXJ0cy13b3JkY2xvdWQnLFxyXG4gICAgJ0B3YW5nZWRpdG9yL2VkaXRvcicsXHJcbiAgICAnQHdhbmdlZGl0b3IvZWRpdG9yLWZvci12dWUnLFxyXG4gICAgJ0BtaWNyb3NvZnQvZmV0Y2gtZXZlbnQtc291cmNlJyxcclxuICAgICdtYXJrZG93bi1pdCcsXHJcbiAgICAnbWFya21hcC12aWV3JyxcclxuICAgICdtYXJrbWFwLWxpYicsXHJcbiAgICAnbWFya21hcC10b29sYmFyJyxcclxuICAgICdoaWdobGlnaHQuanMnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvbG9jYWxlL2xhbmcvemgtY24nLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9sb2NhbGUvbGFuZy9lbicsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvYXZhdGFyL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvc3BhY2Uvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9iYWNrdG9wL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvZm9ybS9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3JhZGlvLWdyb3VwL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvcmFkaW8vc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9jaGVja2JveC9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2NoZWNrYm94LWdyb3VwL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvc3dpdGNoL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvdGltZS1waWNrZXIvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9kYXRlLXBpY2tlci9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2Rlc2NyaXB0aW9ucy9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2Rlc2NyaXB0aW9ucy1pdGVtL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvbGluay9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3Rvb2x0aXAvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9kcmF3ZXIvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9kaWFsb2cvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9jaGVja2JveC1idXR0b24vc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9vcHRpb24tZ3JvdXAvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9yYWRpby1idXR0b24vc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9jYXNjYWRlci9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2NvbG9yLXBpY2tlci9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2lucHV0LW51bWJlci9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3JhdGUvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9zZWxlY3QtdjIvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy90cmVlLXNlbGVjdC9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3NsaWRlci9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3RpbWUtc2VsZWN0L3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvaW1hZ2Utdmlld2VyL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvdXBsb2FkL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvY29sL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvZm9ybS1pdGVtL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvYWxlcnQvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9icmVhZGNydW1iL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvc2VsZWN0L3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvaW5wdXQvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9icmVhZGNydW1iLWl0ZW0vc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy90YWcvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9wYWdpbmF0aW9uL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvdGFibGUvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy90YWJsZS12Mi9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3RhYmxlLWNvbHVtbi9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2NhcmQvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9yb3cvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9idXR0b24vc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9tZW51L3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvc3ViLW1lbnUvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9tZW51LWl0ZW0vc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9vcHRpb24vc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9kcm9wZG93bi9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9kcm9wZG93bi1pdGVtL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvc2tlbGV0b24vc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9za2VsZXRvbi9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2JhY2t0b3Avc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9tZW51L3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvc3ViLW1lbnUvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9tZW51LWl0ZW0vc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9kcm9wZG93bi9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3RyZWUvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9kcm9wZG93bi1tZW51L3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvZHJvcGRvd24taXRlbS9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2JhZGdlL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2JyZWFkY3J1bWItaXRlbS9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2ltYWdlL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvY29sbGFwc2UtdHJhbnNpdGlvbi9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3RpbWVsaW5lL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvdGltZWxpbmUtaXRlbS9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2NvbGxhcHNlL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvY29sbGFwc2UtaXRlbS9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2J1dHRvbi1ncm91cC9zdHlsZS9jc3MnLFxyXG4gICAgJ2VsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3RleHQvc3R5bGUvY3NzJyxcclxuICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9zZWdtZW50ZWQvc3R5bGUvY3NzJyxcclxuICAgICdAZWxlbWVudC1wbHVzL2ljb25zLXZ1ZScsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvZm9vdGVyL3N0eWxlL2NzcycsXHJcbiAgICAnZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvZW1wdHkvc3R5bGUvY3NzJ1xyXG4gIF1cclxuICBcclxuICBjb25zdCBleGNsdWRlID0gWydAaWNvbmlmeS9qc29uJ11cclxuICBcclxuICBleHBvcnQgeyBpbmNsdWRlLCBleGNsdWRlIH1cclxuICAiXSwKICAibWFwcGluZ3MiOiAiO0FBQTRXLFNBQVEsV0FBQUEsZ0JBQWM7QUFFbFksU0FBUSxlQUFjOzs7QUNGK1csU0FBUyxlQUFlO0FBQzdaLE9BQU8sU0FBUztBQUNoQixPQUFPLFlBQVk7QUFDbkIsT0FBTyxjQUFjO0FBRXJCLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMscUJBQXFCO0FBRTlCLE9BQU8saUJBQWlCO0FBQ3hCLE9BQU8sZ0JBQWdCO0FBQ3ZCLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMsMkJBQTJCO0FBQ3BDLE9BQU8scUJBQXFCO0FBQzVCLE9BQU8sbUJBQW1CO0FBQzFCLE9BQU8sbUJBQW1CO0FBQzFCLFNBQVMsNEJBQTRCO0FBQ3JDLE9BQU8sWUFBWTtBQWhCbkIsSUFBTSxtQ0FBbUM7QUFrQmxDLFNBQVMsb0JBQW9CO0FBQ2xDLFFBQU1DLFFBQU8sUUFBUSxJQUFJO0FBR3pCLFdBQVNDLGFBQVksS0FBYTtBQUNoQyxXQUFPLFFBQVFELE9BQU0sS0FBSyxHQUFHO0FBQUEsRUFDL0I7QUFFQSxTQUFPO0FBQUEsSUFDTCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsSUFDUCxPQUFPO0FBQUEsSUFDUCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxZQUFZLENBQUMsQ0FBQztBQUFBLElBQ2QsV0FBVztBQUFBLE1BQ1QsU0FBUztBQUFBLFFBQ1A7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxNQUNGO0FBQUEsTUFDQSxTQUFTO0FBQUEsUUFDUDtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxVQUNFLHVCQUF1QixDQUFDLFNBQVM7QUFBQSxVQUNqQywwQkFBMEIsQ0FBQyxZQUFZO0FBQUEsVUFDdkMsd0JBQXdCLENBQUMsVUFBVTtBQUFBLFVBQ25DLDhCQUE4QixDQUFDLGdCQUFnQjtBQUFBLFVBQy9DLHFCQUFxQixDQUFDLFVBQVU7QUFBQSxVQUNoQyxnQkFBZ0IsQ0FBQyxXQUFXO0FBQUEsUUFDOUI7QUFBQSxNQUNGO0FBQUEsTUFDQSxLQUFLO0FBQUEsTUFDTCxXQUFXLENBQUMsb0JBQW9CLENBQUM7QUFBQSxNQUNqQyxVQUFVO0FBQUEsUUFDUixTQUFTO0FBQUE7QUFBQSxRQUNULFVBQVU7QUFBQTtBQUFBLFFBQ1Ysa0JBQWtCO0FBQUE7QUFBQSxNQUNwQjtBQUFBLElBQ0YsQ0FBQztBQUFBLElBQ0QsV0FBVztBQUFBO0FBQUEsTUFFVCxLQUFLO0FBQUE7QUFBQSxNQUVMLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztBQUFBLE1BQ2pDLE9BQU8sQ0FBQyxrQ0FBa0MsZ0RBQWdEO0FBQUEsSUFDNUYsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFLRCxjQUFjO0FBQUEsTUFDWixhQUFhO0FBQUEsTUFDYixpQkFBaUI7QUFBQSxNQUNqQixTQUFTLENBQUMsUUFBUSxrQ0FBVyxnQkFBZ0IsQ0FBQztBQUFBLElBQ2hELENBQUM7QUFBQSxJQUNELHFCQUFxQjtBQUFBLE1BQ25CLFVBQVUsQ0FBQ0MsYUFBWSxpQkFBaUIsQ0FBQztBQUFBLE1BQ3pDLFVBQVU7QUFBQSxNQUNWLGFBQWE7QUFBQSxJQUNmLENBQUM7QUFBQSxJQUNELGdCQUFnQjtBQUFBLE1BQ2QsU0FBUztBQUFBO0FBQUEsTUFDVCxTQUFTO0FBQUE7QUFBQSxNQUNULFdBQVc7QUFBQTtBQUFBLE1BQ1gsV0FBVztBQUFBO0FBQUEsTUFDWCxLQUFLO0FBQUE7QUFBQSxNQUNMLGtCQUFrQjtBQUFBO0FBQUEsSUFDcEIsQ0FBQztBQUFBLElBQ0QsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBO0FBQUE7QUFBQSxNQUdaLG1CQUFtQjtBQUFBO0FBQUEsTUFFbkIsbUJBQW1CLENBQUMsTUFBTSxTQUFTLENBQUM7QUFBQSxJQUN0QyxDQUFDO0FBQUEsRUFDSDtBQUNGOzs7QUNuRzJZLElBQU0sVUFBVTtBQUFBLEVBQ3ZaO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVB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
